package appmodelo.modulo1.web.componente.view.model;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

import org.primefaces.model.menu.DefaultMenuItem;
import org.primefaces.model.menu.DefaultMenuModel;
import org.primefaces.model.menu.DefaultSubMenu;
import org.primefaces.model.menu.MenuElement;
import org.primefaces.model.menu.MenuModel;

@ManagedBean
@RequestScoped
public class MenuPrincipalControler {

	private MenuModel menuPrincipal;
	
	List<DefaultSubMenu> submenus;
	
	public MenuPrincipalControler() {
		this.gerarMenuInicial();
	}
	
	public void adicionarSubMenu(DefaultSubMenu subMenu) {
		this.menuPrincipal.addElement(subMenu);
	}
	
	public List<DefaultSubMenu> getSubMenus() {
		this.submenus = new ArrayList<>();
		for (MenuElement subMenu : this.menuPrincipal.getElements()) {
			submenus.add((DefaultSubMenu) subMenu);
		}
		return submenus;
	}
	
	public void adicionarMenu (String nome) {
		
		DefaultSubMenu subMenuSistema = new DefaultSubMenu(nome);
		subMenuSistema.setIcon("ui-icon-document");
		subMenuSistema.setStyleClass("submenu");
		//subMenuSistema.setId(id);
		//subMenuSistema.setRendered(rendered);
	}
	
	private void gerarMenuInicial() {
		
		// Menu nivel 2 - Manutencao
		DefaultSubMenu subMenuManutencao = new DefaultSubMenu("Manutenção");
		subMenuManutencao.setIcon("ui-icon-contact");

		// Item - Tabela Sistema; Manutencao ; Sistema
		DefaultMenuItem itemTabelaSistema = new DefaultMenuItem();
		itemTabelaSistema.setValue("Tabelas do Sistema");
		itemTabelaSistema.setUrl("/faces/template/template_tabelas.faces");
		subMenuManutencao.addElement(itemTabelaSistema);

		// Item - Cadastro Usuário; Manutencao ; Sistema
		DefaultMenuItem itemCadastroUsuario = new DefaultMenuItem();
		itemCadastroUsuario.setValue("Cadastro Usuário");
		itemCadastroUsuario.setUrl("#");
		subMenuManutencao.addElement(itemCadastroUsuario);

		// Menu nivel 1 - Sistema
		DefaultSubMenu subMenuSistema = new DefaultSubMenu("Sistema");
		subMenuSistema.setIcon("ui-icon-document");
		subMenuSistema.setStyleClass("submenu");
		subMenuSistema.addElement(subMenuManutencao);

		// Menu nivel 1 - Vendas
		DefaultSubMenu subMenuVendas = new DefaultSubMenu("Vendas");
		subMenuVendas.setIcon("ui-icon-document");
		subMenuVendas.setStyleClass("submenu");

		// Item - Carro; Vendas
		DefaultMenuItem itemCarro = new DefaultMenuItem();
		itemCarro.setValue("Carro");
		itemCarro.setUrl("#");
		subMenuVendas.addElement(itemCarro);
		
		// Adicionado os subMenu ao Menubar
		menuPrincipal = new DefaultMenuModel();
		menuPrincipal.addElement(subMenuSistema);
		menuPrincipal.addElement(subMenuVendas);

	}

	public MenuModel getMenu() {
		return menuPrincipal;
	}

}
